1. Field of the Invention
The present invention relates to a video distribution system that distributes video in real time via a transmission path.
2. Description of the Related Art
In recent years, with the development of a technique for encoding moving image data, network capacity has been increased and a data transmission technique has been developed. As a result, a viewing style according to the related art where video, which is physically accumulated in a storage medium, such as a video tape recorder (VTR) or digital versatile disc (DVD), is viewed has been changed to a viewing style such as “Video On Demand” where desired video content is received via a network, such as the Internet.
Further, as a method for distributing video content via a network, there is a method called as a streaming method (streaming distribution) where the content is divided into packets having small sizes according to a transmission path and is transmitted in time series. If video content is distributed by streaming, even though a user uses a viewing terminal that has a small storage capacity, the user can view video in real time without considering a capacity needed to store the video content.
As a form of the streaming distribution, a form where video photographed by a web camera is distributed in real time via the Internet is typically used. However, the streaming distribution form is not limited thereto, and moving image content previously stored in a content server may be viewed by streaming.
To perform the streaming distribution on the Internet, among Internet standard communication protocols defined by the Internet Engineering Task Force (IETF), the Real Time Streaming Protocol (RTSP) or the Transport Protocol for Real-Time Applications (RTP) can be mainly used. The RTSP is used for playback control such as a playback session start and acquisition, playback, and stop of content information, and is determined by the Request For Comments (RFC) 2326. The RTP, which is a base protocol for video data distribution, is defined by the RFC 1889 and the RFC 3550. In addition to the RTSP or RTP, a standard protocol based on an encoding format is used when video data is transmitted. For example, in the case of MPEG-4 Video, the RTP Payload Format for Moving Picture Experts Group phase 4 (MPEG-4) Audio/Visual Streams (RFC 3016) is used together with the RTP.
A method for performing fast-forward playback and rewind playback of video content in the streaming distribution method is described in the RTSP specification. As an example, FIG. 1 illustrates a communication sequence in the case where a mode of video content, which is encoded in an MPEG-4 Video format using the RTSP and the RTP, is switched into a fast-forward playback mode while the video content is viewed, and the video content is distributed. A communication sequence (refer to FIG. 1) that is used between a distribution server S and a client terminal (viewing terminal) C starts, when an operation related to the fast-forward playback is performed by the client terminal during a normal playback.
First, the client terminal transmits a DESCRIBE (start session) command to start a playback session to the distribution server. The distribution server, which has received the DESCRIBE command, returns a response with respect to the corresponding command to the client terminal.
Next, the client terminal issues a SETUP (set distribution) command to the distribution server and performs distribution preparation. The distribution server, which has received the SETUP command, returns setting information, which is needed to transmit and receive video data, as a response.
In addition, the client terminal transmits a PLAY (playback) command to the distribution server to start playback of video content. If the distribution sever receives the PLAY command, the distribution server returns a response and transmits video data through the RTP.
The flow of the normal playback operation has been described. Next, a sequence performed when a fast-forward playback (high-speed playback) is performed in the middle of the normal playback operation illustrated in the second half in FIG. 1 will be described. In this case, the case where an operation related to the fast-forward playback is performed at a point of time when the playback operation has been performed for 12 seconds during the playback of video data of 60 seconds is exemplified. Further, it is assumed that the fast-forward playback speed is 5×.
To pause distribution in the current normal playback mode at a point of time when the operation related to the fast-forward playback is performed during the normal playback and the fast-forward request is generated, the client terminal transmits a PAUSE command to the distribution server. If the distribution server receives the PAUSE command from the client terminal, the distribution sever stops the distribution of the video data in a state where the distribution server maintains a connection with the client terminal.
Thereafter, the client terminal retransmits a PLAY command to the distribution server to perform the fast-forward playback. However, unlike the first PLAY command, the PLAY command requests the playback starting with video after 12 seconds at a playback speed of 5×.
More specifically, in FIG. 1, a Range field 101 shows a playback range, and a portion shown by “Range: npt=12.000000−60.000000” indicates a request of the playback starting with video after 12 seconds (from video after 12 seconds to video after 60 seconds). Further, a Scale field 102 shows a playback speed, and a portion shown by “Scale: 5” indicates that the playback speed is 5×.
Further, if a negative value is designated as a value in the Scale field, it is possible to request the rewind playback. Further, in the RTSP specification, a Speed field that has the same meaning as the Scale field is also defined, and may be used instead of the Scale field.
As such, according to the second PLAY command (PLAY command to perform the fast-forward playback), an interval of time from the fast-forward playback start time to the ending time indicating the final portion of the content is designated by the Range field. The distribution server, which has received the PLAY command, distributes video data from a point of time of the designated video after 12 seconds at a playback speed of 5×.
However, in the sequence, the following problems may exist.
When the playback speed designated by the Scale (or Speed) field is faster than the normal playback speed and the amount of the transmitted video data exceeds a processing capacity of the client terminal, the video data may not be completely processed by the client terminal, and abnormality may occur in the playback operation.
Further, when the amount of the transmitted video data exceeds a bandwidth of a network between the distribution server and the client terminal, it may cause a network failure, such as congestion or packet loss, during the transmission of the video data. As a result, abnormality may occur in the playback operation in the client terminal, and packet transmitting and receiving processes of other nodes that belong to the network may be abnormally executed.
For example, if the playback speed at the high-speed playback is set as n (the playback at the normal speed is performed in the case of n=1), a bit rate at the time of the high-speed playback becomes n times faster than a bit rate at the time of the playback at the normal speed. If the bit rate at the time of the playback at the normal speed is set as B and the maximum transmission bit rate at the network is set as X, the above-described network failure may occur in the case of X<(B×n).
Further, as in the MPEG format, when inter-picture predictive coded (inter-frame predictive coded) video data is included, the video at the playback start time designated by the Range field cannot necessarily be decoded and played back only with video data at the designated time. When the video data at the designated time is an inter-picture predictive coded picture (a P picture or a B picture), data of reference pictures for the designated picture is also needed at the time of decoding to accurately decode and play back the video at the designated time. Accordingly, when the inter-picture predictive coded video data is included, if the video data at the designated time is only transmitted, a decoded result cannot be secured at the client terminal. As a result, an abnormal playback operation may be performed.
In the streaming-type video distribution system according to the related art, even when the fast-forward playback and the rewind playback are performed, picture data is transmitted according to a normal sequence. Therefore, the client terminal at the reception side is required to execute a special playback process. In particular, to perform the rewind playback, entire data of group of pictures (GOP) in the MPEG needs to be acquired and decoded, and the acquired pictures and the display images after decoding need to be stored to play back the acquired pictures and the display images after decoding in reverse order. For this reason, an increase in cost may arise.
As a technique for realizing a special playback process in the related art, Japanese Patent Application Laid-Open No. 2004-54930 discusses a caching technique for streaming media content at the side of a client terminal. According to the caching technique discussed in Japanese Patent Application Laid-Open No. 2004-54930, the client terminal caches streaming media. Thereby, even when various shuttle control options (for example, pause, stop, fast-forward, seek, and rewind) are selected, it is possible to continue streaming of the content.
However, according to the conventional technique discussed in Japanese Patent Application Laid-Open No. 2004-54930, to store streaming-distributed content data in the client terminal, a temporary storage unit that has a sufficient capacity is needed. Accordingly, the caching technique is effective in a client terminal that includes a large-capacity storage device, such as a personal computer. Meanwhile, in the case of a client terminal where it is physically and costly difficult to include a large-capacity storage device, such as a portable terminal, the caching technique is ineffective. If the caching technique is used to realize a special playback, a cost of the client terminal may be increased.
Further, in regards to the conventional caching technique, to perform the special playback using the cached and distributed video data in the client terminal, the caching technique can be applied to the case of the rewind playback but cannot be applied to the case of the high-speed playback in the forward direction. Accordingly, when the above-described caching technique is applied and the high-speed playback in the forward direction is performed, it is not possible to improve disadvantages, such as a transmission disturbance due to an increase in traffic of the network or a playback failure due to an increase in the load on the client terminal.